package com.dy.design_pattern_study.composite_pattern.dome1.impl;

import com.dy.design_pattern_study.composite_pattern.dome1.Component;

/**
 * @CreateBy zhangdingyi
 * @Date 2023-04-12
 * @Content 在组合中表示节点对象，叶节点没有子节点
 *
 */
public class Leaf extends Component {

    public Leaf(String name) {
        super(name);
    }

    /**
     * 叶子节点，没有增加分支和树叶，它本身就是一个整体
     * 但它可以用来消除叶节点和子节点的抽象层次的区别
     * 使其具备完全一致的接口
     * @param component
     */
    @Override
    public void add(Component component) {
        System.out.println("can't add a leaf'");
    }

    @Override
    public void remove(Component component) {
        System.out.println("can't remove from a leaf'");

    }

    /**
     * 叶节点的具体方法，这里显示名称和级别
     * @param depth
     */
    @Override
    public void display(int depth) {
        System.out.println(printStr(depth));
    }
}
